In this notebook we will finsish Dunfield's classification of the census L-space knots by proving that the two uncertain knots 'o9_30150' and 'o9_31440' both do admit surgeries to double branched covers over links in the 3-sphere. In the paper we then identify for each of 'o9_30150' and 'o9_31440' a branching set as quasi-alternating which proves that both 'o9_30150' and 'o9_31440' are actually L-space knots.
For finding the branching sets, we run through the HT link table in SnapPy build its double branched covers and compare to fillings of short slopes along the two uncertain knots.
maybeLspaceKnots=['o9_30150', 'o9_31440']
import snappy
import time
def double_branched_cover(link):
"""
Returns the double branched cover of the link.
"""
L=link.copy()
for i in range(L.num_cusps()):
L.dehn_fill((2,0),i)
for cov in L.covers(2):
if (2.0, 0.0) not in cov.cusp_info('filling'):
return cov
def better_is_isometric_to(X,Y,index):
"""
Returns True if X and Y are isometric.
Returns False if X and Y have different homologies. TO DO: Use volume to rigorously distinguish X and Y.
Returns 'unclear' if SnapPy cannot verify it.
The higher the index the harder SnapPy tries.
"""
w='unclear'
if X.homology()!=Y.homology():
w=False
if w=='unclear':
for i in (0,index):
try:
w=X.is_isometric_to(Y)
except RuntimeError:
pass
except snappy.SnapPeaFatalError:
pass
if w==True:
break
if w==False:
w='unclear'
X.randomize()
Y.randomize()
i=i+1
return w
def search_for_DBC_slopes(knot,slope_set=[(0,1),(1,1),(-1,1),(2,1),(-2,1),(1,2),(-1,2)]):
'''
Searches in the given set of slopes for a non-aternating DBC slope.
'''
K=snappy.Manifold(knot)
FILLINGS=[]
for L in snappy.HTLinkExteriors(alternating=False):
D=double_branched_cover(L)
for s in slope_set:
K.dehn_fill(s)
if better_is_isometric_to(D,K,10)==True:
return [knot,s,L.name()]
return False
start_time = time.time()
for knot in maybeLspaceKnots:
print(knot,search_for_DBC_slopes(knot))
print("--- Time taken: %s seconds ---" % ((time.time() - start_time)))
o9_30150 ['o9_30150', (-1, 1), 'K13n3009'] o9_31440 ['o9_31440', (-1, 1), 'K13n2028'] --- Time taken: 45.337544202804565 seconds ---
And in the paper we prove that both 'K13n3009' and 'K13n2028' are quasi-alternating and thus 'o9_30150' and 'o9_31440' are both L-space knots.